ASP.Net MVC থেকে ASP.Net Core MVC এ মাইগ্রেশন একটি গুরুত্বপূর্ণ প্রক্রিয়া, যা একটি অ্যাপ্লিকেশনকে আধুনিক এবং আরও কার্যকরী প্ল্যাটফর্মে স্থানান্তরিত করতে সহায়ক। ASP.Net Core একটি হালকা ওজনের, মাল্টি-প্ল্যাটফর্ম (Windows, macOS, Linux) সমর্থনকারী এবং উচ্চ পারফরম্যান্স প্রদানকারী ফ্রেমওয়ার্ক, যা ASP.Net MVC-এর তুলনায় অনেক বেশি নমনীয় এবং উন্নত। মাইগ্রেশন প্রক্রিয়াটি কিছুটা চ্যালেঞ্জিং হতে পারে, তবে উপযুক্ত পরিকল্পনা এবং কিছু পদক্ষেপ অনুসরণ করলে এটি কার্যকরী হতে পারে।
ASP.Net Core MVC উন্নত পারফরম্যান্স, নিরাপত্তা, স্কেলেবিলিটি এবং মাল্টি-প্ল্যাটফর্ম সাপোর্ট প্রদান করে। কিছু প্রধান কারণ যেগুলির জন্য মাইগ্রেশন করা উচিত:
ASP.Net MVC থেকে ASP.Net Core MVC এ মাইগ্রেশনের জন্য কিছু নির্দিষ্ট পদক্ষেপ অনুসরণ করতে হয়। নীচে এই প্রক্রিয়া বিস্তারিতভাবে বর্ণনা করা হলো।
প্রথমে একটি নতুন ASP.Net Core MVC প্রজেক্ট তৈরি করুন, যাতে আপনি অ্যাপ্লিকেশনটির কার্যকারিতা স্থানান্তর করতে পারবেন।
এটি একটি খালি ASP.Net Core অ্যাপ্লিকেশন তৈরি করবে।
ASP.Net Core MVC-তে Dependency Injection (DI) ডিফল্টভাবে সক্রিয় থাকে, যেখানে ASP.Net MVC-তে DI কনফিগার করতে কিছু অতিরিক্ত কাজ করা প্রয়োজন।
ASP.Net Core-এ Startup.cs ফাইলে DI কনফিগার করা হয়। আগের ASP.Net MVC অ্যাপ্লিকেশনে DI কনফিগারেশন করা হলে, Core-এ একই কাজ করা যেতে পারে, কিন্তু DI এর সঠিক কনফিগারেশন ফর্ম্যাট পরিবর্তন হয়েছে।
ASP.Net Core-এ DI কনফিগারেশন:
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddScoped<IStudentService, StudentService>(); // DI কনফিগারেশন
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}
}
ASP.Net Core MVC-তে ফাইল স্ট্রাকচার কিছুটা পরিবর্তিত হয়েছে:
ASP.Net Core MVC তে রাউটিং কনফিগারেশন বেশ পরিবর্তিত হয়েছে। ASP.Net MVC-তে যেভাবে URL রাউট কনফিগার করা হয়, ASP.Net Core MVC-তে তা আর একটু আরও সহজ এবং নমনীয়।
ASP.Net Core MVC-তে রাউটিং কনফিগার করা হয় Startup.cs ফাইলে।
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
ASP.Net Core-এ Middleware কনফিগারেশন একটি নতুন ধারণা, যেখানে আপনি অ্যাপ্লিকেশনের পিপলাইন কনফিগার করেন। Middleware কনফিগারেশন এবং সিকিউরিটি সেটিংস একে অপর থেকে আলাদা।
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseRouting();
app.UseAuthentication(); // Authentication Middleware
app.UseAuthorization(); // Authorization Middleware
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}
ASP.Net Core Entity Framework (EF) Core ব্যবহার করে ডাটাবেস মাইগ্রেশন এবং ডাটাবেস পরিচালনা করা হয়। আগের ASP.Net MVC অ্যাপ্লিকেশনে Entity Framework ব্যবহার করা হলে, EF Core এ মাইগ্রেট করতে হবে। EF Core ডাটাবেস মাইগ্রেশন অনেক সহজ এবং দ্রুত হতে পারে, তবে কিছু অতিরিক্ত কনফিগারেশন প্রয়োজন।
EF Core মাইগ্রেশন চালাতে:
dotnet ef migrations add InitialCreate
dotnet ef database update
ASP.Net Core অ্যাপ্লিকেশনে কনফিগারেশন অনেক সহজ এবং শক্তিশালী। appsettings.json
এবং IConfiguration
ইন্টারফেস ব্যবহার করে কনফিগারেশন ম্যানেজমেন্ট করা হয়।
appsettings.json
ফাইল কনফিগারেশন:
{
"ConnectionStrings": {
"DefaultConnection": "YourDatabaseConnectionString"
}
}
ASP.Net Core-এ কনফিগারেশন ব্যবহার:
public class MyController : Controller
{
private readonly IConfiguration _configuration;
public MyController(IConfiguration configuration)
{
_configuration = configuration;
}
public IActionResult Index()
{
string connectionString = _configuration.GetConnectionString("DefaultConnection");
return View();
}
}
ASP.Net Core MVC Razor Views কিছুটা পরিবর্তিত হয়েছে। Razor Pages এর ব্যবহার বাড়ানো হয়েছে, তবে ক্লাসিক Razor Views একইভাবে কাজ করে।
ASP.Net MVC থেকে ASP.Net Core MVC এ মাইগ্রেশন একটি চ্যালেঞ্জিং, তবে অত্যন্ত কার্যকরী প্রক্রিয়া। এটি অ্যাপ্লিকেশনটির পারফরম্যান্স এবং স্কেলেবিলিটি উন্নত করে, এবং মাল্টি-প্ল্যাটফর্ম সমর্থন প্রদান করে। ASP.Net Core MVC-এর বিভিন্ন নতুন ফিচার এবং উন্নত পারফরম্যান্সের কারণে এটি আরও জনপ্রিয় হয়ে উঠছে। মাইগ্রেশনের সময় অবশ্যই ডিপেন্ডেন্সি ইনজেকশন, রাউটিং, মিডলওয়্যার, কনফিগারেশন এবং ডাটাবেস মাইগ্রেশন নিয়ে পরিকল্পনা করা উচিত।
common.read_more